import request from '@/utils/request'

/**
 * 上传图片
 * @param {File} file - 要上传的图片文件
 * @param {Object} options - 其他选项
 * @returns {Promise}
 */
export function uploadImage(file, options = {}) {
  const formData = new FormData()
  formData.append('file', file)
  
  // 添加其他参数
  Object.keys(options).forEach(key => {
    formData.append(key, options[key])
  })
  
  return request({
    url: '/file/uploadImage',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 上传文件
 * @param {File} file - 要上传的文件
 * @param {Object} options - 其他选项
 * @returns {Promise}
 */
export function uploadFile(file, options = {}) {
  const formData = new FormData()
  formData.append('file', file)
  
  // 添加其他参数
  Object.keys(options).forEach(key => {
    formData.append(key, options[key])
  })
  
  return request({
    url: '/file/uploadFile',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 获取文件URL
 * @param {string} fileId - 文件ID或路径
 * @returns {string} 文件的URL
 */
export function getFileUrl(fileId) {
  if (fileId.startsWith('http')) {
    return fileId
  }
  return `/api/file/download/${fileId}`
}

/**
 * 获取图片缩略图URL
 * @param {string} imageId - 图片ID或路径
 * @param {number} width - 缩略图宽度
 * @param {number} height - 缩略图高度
 * @returns {string} 缩略图URL
 */
export function getImageThumbnail(imageId, width = 200, height = 200) {
  if (imageId.startsWith('http')) {
    return imageId
  }
  return `/api/file/thumbnail/${imageId}?width=${width}&height=${height}`
} 